Market Clearability in Combinatorial Auctions and Exchanges

ABSTRACT

A method of determining a winning allocation in an auction or exchange includes receiving at least one buy bid that includes a price-quantity demand curve and/or receiving at least one sell bid that includes a price-quantity supply curve. The received curves are utilized to determine clearing prices therefor that maximize a clearing surplus. A winning allocation is determined based on the clearing prices.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional Patent Application No. 60/371,390, filed Apr. 10, 2002, entitled “Market Clearability”, and is a Divisional of U.S. patent application Ser. No. 10/410,876, filed Apr. 10, 2003, entitled “Market Clearability In Combinatorial Auctions And Exchanges”, both of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed to combinatorial auctions and exchanges and, more specifically, to determining winning allocations in combinatorial auctions and exchanges.

2. Description of Related Art

Commerce is moving online to an increasing extent, and there has been a significant shift to dynamic pricing via auctions (one seller, multiple buyers), reverse auctions (one buyer, multiple sellers), and exchanges (multiple buyers, multiple sellers). These market types have also become key coordination methods in multi-agent systems. These trends have led to an increasing need for fast market clearing algorithms Recent electronic commerce server prototypes have demonstrated a wide variety of new market designs, leading to the need for new clearing algorithms.

There has been a recent surge of interest in clearing combinatorial auctions where bids can be submitted on bundles of distinguishable items, potentially multiple units of each. There has also been recent work on clearing combinatorial reverse auctions and combinatorial exchanges. The clearing problem in a combinatorial market is NP-complete, inapproximable, and in certain variants even finding a feasible solution is NP-complete. On the other hand, markets where there is only one unit of one item for sale are trivial to clear.

Another type of market setting is the ubiquitous one where there are multiple indistinguishable units of an item for sale. This setting is common in markets for stocks, bonds, electricity, bandwidth, oil, pork bellies, memory chips, CPU time, etc.

The naïve approach to bidding a multi-unit market would require the bidders to express their offers as a list of points, for example ($2 for 1 unit) XOR ($5 for 2 units) XOR ($6 for 3 units), etc. The mapping from quantities to prices can be represented more compactly by allowing each bidder to express his offer as a price-quantity curve (supply curve for a seller, demand curve for a buyer). Such curves are natural ways of expressing preferences, are ubiquitous in economics, and are becoming common in electronic commerce as well.

In classic economic theory of supply and demand curves (called partial equilibrium theory), the market is cleared as follows. The supply curves of the sellers and the demand curves of the buyers are separately aggregated. The market is cleared at a per-unit price for which supply equals demand (there may be multiple solutions). This way of clearing the market maximizes social welfare.

However, it turns out that the auctioneer (that is, the party who runs the market—who is neither a buyer or a seller) will achieve greater (or equal) profit from the same supply/demand curves by reducing the number of units traded, and charging one per-unit price to the buyers while paying a lower per-unit price to the sellers. We call such pricing non-discriminatory because each buyer pays the same amount per unit, and each seller gets paid the same amount per unit. The auctioneer's profit can be further improved by moving to discriminatory pricing where each seller and each buyer can be cleared at a different per-unit price.

It is, therefore, desirable to provide a method for clearing, or determining the winning allocation, in a forward auction, reverse auction, or exchange, when discriminatory and non-discriminatory pricing are in effect, that maximizes a clearing surplus. Still other desirable features will become apparent to those of ordinary skill in the art upon reading and understanding the following detailed description.

SUMMARY OF THE INVENTION

The invention is a computer-implemented method of determining a winning allocation in an auction or exchange that includes receiving at least one buy bid that includes a price-quantity demand curve and at least one sell bid that includes a price-quantity supply curve. The demand and supply curves are utilized to determine clearing prices for the buy and sell bids that maximize a clearing surplus. The winning allocation is determined based on the clearing prices.

Each curve can be a linear curve, a piecewise linear curve, a non-linear curve, a piecewise non-linear curve and/or one or more price-quantity pairs.

The clearing prices can be determined based on whether the bids have discriminatory pricing or non-discriminatory pricing. If the method is used with the forward auction, one sell bid and a plurality of buy bids are received. If the method is utilized in connection with the reverse auction, one buy bid and a plurality of sell bids are received. If the method is utilized with an exchange, a plurality of buy bids and a plurality of sell bids can be received.

The invention is also a computer-implemented method of determining a winning allocation in an auction. The method includes receiving from a bidder a bid that includes a price-quantity curve for an item. The price-quantity curve is referenced to a Cartesian coordinate system that has an origin where axes representing price and quantity meet. The position of a point on the price-quantity curve that maximizes an area of a rectangle that is bounded by the origin and the demand curve is determined. The price-quantity pair represented by said point on the price-quantity curve is included in the winning allocation.

In a forward auction, the quantity associated with the point on the price-quantity curve is no more than the total quantity of the item available. In a reverse auction, the quantity associated with the point on the price-quantity curve is no less than the total quantity of the item required.

The invention is also a computer-implemented method of determining a winning allocation in an auction that includes receiving from each of a plurality of bidders for an item a bid for said item that includes a price-quantity curve. An aggregate curve is formed that includes the sum of the quantities of price-quantity curves. The aggregate curve is referenced to a Cartesian coordinate system that has an origin where axes representing price and quantity meet. The position of a point on the aggregate curve that, for a forward auction, maximizes an area of a rectangle that is bounded by the origin and the aggregate curve and, for a reverse auction, minimizes the area of said rectangle is determined. The position of a point on each price-quantity curve where the price associated therewith is the same as the price associated with the point on the aggregate curve is determined. The price-quantity pair associated with the points on the price-quantity curves are included in the winning allocation.

When the price-quantity curves are aggregated to form the aggregate curve, each instance where a quantity on the aggregate curve has two or more prices associated therewith, the price having the greatest value is associated with said quantity. An instance where this might occur is when the aggregate curve is formed from two or more piecewise linear or non-linear curves.

The invention is also a computer-implemented method of determining a winning allocation in a forward auction. The method includes receiving from each of a plurality of bidders for an item a bid for said item that includes a price-quantity demand curve. Each demand curve is referenced to a Cartesian coordinate system that has an origin where axes representing price and quantity meet. The position of a point on each demand curve that maximizes an area of a rectangle that is bounded by said demand curve and said origin is determined. The quantities associated with the points on the demand curves are summed and, if this sum is no more than the total quantity of the item available, the price-quantity pairs associated with the points on the demand curves are included in the winning allocation.

However, if the sum is greater than the total quantity of the item available, a list S is formed of all the demand curves. The demand curve in list S having the lowest price associated therewith is identified. The position of points on the demand curve in list S are adjusted whereupon the price associated with each adjusted point is increased by said lowest price. The quantities associated with the adjusted points on the demand curves in list S are summed. If this sum is no more than the total quantity of the item available, the quantity associated with the adjusted point on each demand curve and the price p_(i) determined utilizing the following equation are included in the winning allocation.

$p_{i} = {\left\lbrack {{- b_{i}}/\left( {2a_{i}} \right)} \right\rbrack - \left\lbrack {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q}} \right)/\left( {2{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}}} \right)} \right\rbrack}$

where

-   -   S=list of demand curves;     -   i=the demand curve under consideration;     -   j in S=each demand curve j in S;     -   Q=total number of units of the item available;     -   a_(i) and b_(i)=coefficients of the demand curve under         consideration,         -   i.e., q_(i)=(a_(i))(p_(i))+b_(i); and     -   a_(j) and b_(j)=coefficients of each demand curve other than the         demand curve under consideration, i.e., q_(i)=(On)+

If the latter quantity sum is greater than the total quantity of the item available, the demand curve having the point having the lowest price associated therewith is deleted from list S and the foregoing steps after forming list S are repeated until the quantity associated with the adjusted point on each demand curve and the price for each demand curve determined utilizing the above equation are included in the winning allocation.

The invention is also a computer-implemented method of determining a winning allocation in reverse auction. The method includes receiving from each of a plurality of sellers of an item a bid for a said item that includes price-quantity supply curve of the form.

q=ap+b,

where

q=quantity;

p=price;

a=slope of the supply curve; and

b=offset of the quantity of the supply curve from a quantity of zero.

The supply curves are sorted in increasing order of the ratio b/a for each supply curve. Next, for each supply curve in a list S of adjacent supply curves in the sorted order, a clearing price p_(i) and a clearing quantity q_(i) are determined utilizing the following equations.

${{Clearing}\mspace{14mu} {quantity}\text{:}\mspace{14mu} q_{i}} = {\left( {{- b_{i}}/2} \right) + {\left( {a_{i}/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}$ $\mspace{20mu} {{{Clearing}\mspace{14mu} {price}\text{:}\mspace{14mu} p_{i}} = {\left( {{{- b_{i}}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}}$

where

-   -   i=the supply curve under consideration;     -   j in S=each supply curve j in S;     -   Q=total number of units of the item available;     -   a_(i) and b_(i)=coefficients of the supply curve under         consideration,         -   i.e., q_(i)=(a_(i))(p_(i))+b_(i); and     -   a_(i) and b_(b)=coefficients of each supply curve other than the         supply curve under consideration, i.e., q_(i)=(a_(j))(p_(i))+

From the clearing prices determined thus far, the clearing price having the largest value is identified. If the value of this clearing price is less than the ratio b/a of the next supply curve in the sorted order that is not already in list S, or if list S includes all of the supply curves, the clearing prices and the clearing quantities determined thus far are included in the winning allocation. Otherwise, the next supply curve in the sorted order that is not already in list S is included therein. The foregoing steps after sorting the supply curves in increasing order of ratio b/a are repeated until the clearing prices and the clearing quantities determined thus far are included in the winning allocation.

The method can terminate early if the clearing quantity q_(i) of any seller is determined to have a value less than zero. The list S can initially only include the supply curve having the smallest ratio b/a.

The method is also a computer-implemented method of determining a winning allocation in an exchange. The method includes receiving from a buyer a price-quantity demand curve for an item and receiving from a seller a price-quantity supply curve for the item. The demand and supply curves are referenced to a Cartesian coordinate system having an origin where axes representing price and quantity meet. The positions of points on the demand and supply curves that maximize an area of a rectangle that is bounded by the demand and supply curves and the price axis are determined. Each such point has the same quantity associated therewith and the price associated with the point on the demand curve is greater than the price associated with the point on a supply curve. The price-quantity pairs associated with the points on the demand and supply curves are included in the winning allocation.

The invention is also a computer-implemented method of determining a winning allocation in an exchange that includes receiving from each of a plurality for bidders for an item a bid for said item that includes a price-quantity demand curve and receiving from each of a plurality of sellers of the item a bid for said item that includes a price-quantity supply curve. An aggregate demand curve is formed that includes the sum of the quantities of the demand curves and an aggregate supply curve is formed that includes the sum of the quantities of the supply curves. The aggregate demand curve and the aggregate supply curve are referenced to a Cartesian coordinate system. The position of a point on each of the aggregate demand curve and the aggregate supply curve is determined that maximizes an area of a rectangle that is bounded by the aggregate demand curve, the aggregate supply curve and the price axis of the Cartesian coordinate system. Each of these points has the same quantity associated therewith and the price associated with the point on the aggregate demand curve is greater than the price associated with the point on the aggregate supply curve. The position of a point on each demand curve where the price associated therewith is the same as the price associated with the point on the aggregate demand curve is determined. The position of a point on each supply curve where the price associated therewith is the same as the price associated with the point on the aggregate supply curve is also determined. The price-quantity pairs associated with the points on the demand curves and the points on the supply curves are then included in the winning allocation.

When the demand curves are aggregated to form the aggregate demand curve, each instance where a quantity on the aggregate demand curve has two or more prices associated therewith, the price having the greatest value is associated with said quantity. When supply curves are aggregated to form the aggregate supply curve, each instance where a quantity of the aggregate supply curve has two or more prices associated therewith, the price having the least value is associated with said quantity.

Lastly, the invention is a computer-implemented method of determining a winning allocation in an exchange that includes receiving a plurality of price-quantity demand curves and a plurality of price-quantity supply curves. Each demand curve and each supply curve is of the form

q=ap+b,

where

q=quantity,

p=price,

a=slope of the supply curve, and

b=offset of the quantity of the supply curve from a quantity of zero.

For each price-quantity demand curve, the point thereon where the product of the price-quantity pair represented by said point is maximized is determined. An aggregate revenue-quantity demand curve is formed as a function of the thus determined points and the demand curves and an aggregate cost-quantity supply curve is formed as a function of the supply curves. The aggregate demand curve and the aggregate supply curve are compared to determine the location of points thereon where a difference in price therebetween for a specific quantity is maximized. The price-quantity pairs associated with said points on the aggregate demand curve and the aggregate supply curve are included in the winning allocation.

One or more of the foregoing steps can be reduced to a computer program which can be stored on computer readable medium and executed by a processor to cause the processor to perform said steps.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a linear price-quantity demand curve in a coordinate system, with a rectangle of maximum size between the demand curve and the origin of the coordinate system;

FIG. 2 shows a pair of demand curves and an aggregate demand curve in a coordinate system, with a rectangle of maximum size between the aggregate demand curve and the origin of the coordinate system;

FIG. 3 shows a pair of demand curves referenced in a coordinate system, with each demand curve including a rectangle of maximum size between the demand curve and the origin of the coordinate system;

FIG. 4 shows a buyer demand curve and a seller supply curve in a coordinate system, with a rectangle of maximum size disposed between the buyer demand curve, the seller demand curve and the unit price axis of the coordinate system;

FIG. 5 shows a pair of buyer demand curves, a pair of seller supply curves, an aggregate demand curve and an aggregate supply curve in a coordinate system, with a rectangle of maximum size positioned between the aggregate demand curve, the aggregate supply curve and the unit price axis of the coordinate system; and

FIG. 6 shows an aggregate demand curve and an aggregate supply curve in a coordinate system that are utilized to determine the maximum surplus in a discriminatory pricing exchange.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will be described with reference to the accompanying figures where like reference numbers correspond to like elements.

In the following description, in connection with an auction, it is assumed that an auctioneer has a finite number Q of units of a good to sell. The auctioneer's goal is to maximize the revenue. Bidders, both buyers and sellers, express their demand as a function of price using price-quantity curves that are superimposed in, or referenced with respect to, a Cartesian coordinate system having its x-axis 6 representing the unit price and its y-axis 8 representing the number of units demanded for each price. Examples of such curves include linear curves, piecewise linear curves, non-linear curves, piecewise non-linear curves, price-quantity pairs and various combinations thereof.

Each curve can be upward sloping (a positive slope), downward sloping (a negative slope), constant sloping (a zero (0) slope) or combinations thereof. For simplicity of description, the present invention will be described in connection with each buyer expressing their demand as a function of price using a price-quantity demand curve and with each seller expressing their demand as a function of price using a price-quantity supply curve. Moreover, for simplicity of description, each curve will be described as being a linear curve. However, this is not to be construed as limiting the invention.

In practice, the auctioneer can “clear” each bidder only at a point on the corresponding curve, i.e., at a unique price-quantity pair on the curve. Thus, the point on a curve where the auctioneer “clears” a bidder uniquely determines the quantity of units allocated to the bidder and the per unit price for said quantity of units.

In the following detailed description, methods are disclosed for non-discriminatory price clearing and discriminatory price clearing in connection with auctions and exchanges.

With reference to FIG. 1, suppose a bidder submits a bid for an item that includes a price-quantity demand curve 2. For purpose of illustration, price-quantity demand curve 2 is superimposed in, or referenced to, a Cartesian coordinate system 4 having an x-axis 6 that represents unit price, a y-axis 8 that represents quantity and an origin 10 where x-axis 6 and y-axis 8 meet.

Once the relationship of price-quantity demand curve 2 and Cartesian coordinate system 4 have been established, the position of a point 12 on price-quantity demand curve 2 that maximizes an area of a rectangle 14 that is bounded by origin 10 and demand curve 2 is determined. This point 12 represents the optimal clearing price for demand curve 2, i.e., the price where the bidder associated with demand curve 2 will receive the most value per unit of the item. Accordingly, the price-quantity pair represented by point 12 is included in a winning allocation.

In a forward auction, the quantity associated with point 12 on demand curve 2 is no more than the total quantity of the item available. In contrast, in a reverse auction, the quantity associated with point 12 on the demand curve is no less than the total quantity of the item available.

With reference to FIG. 2, when each of a plurality of bidders for an item submits a bid for said item that includes a price-quantity demand curve, it may be desirable in the determination of the winning allocation to pay each bidder a different price, i.e., discriminatory pricing, for the same quantity of the item based on the bidders demand curve. For example, suppose a first bidder submits a first bid that includes a first price-quantity demand curve 20 for an item and a second bidder submits a second bid that includes a second price-quantity demand curve 22 for the item. From demand curves 20 and 22, an aggregate demand curve 24 is formed that includes the sum of the quantities of first and second demand curves 20 and 22 at each unit price.

Aggregate demand curve 24 is superimposed in, or referenced to, Cartesian coordinate system 4. The position of a point 26 on aggregate demand curve 24 that maximizes an area of a rectangle 28 that is bounded by origin 10 and aggregate demand curve 24 is then determined.

Next, the position of points 30 and 32 on first and second demand curves 20 and 22, respectively, where the price associated therewith is the same as the price associated with point 26 on aggregate demand curve 24 are determined. The price-quantity pair associated with points 30 and 32 on first and second demand curves 20 and 22 are then included in the winning allocation in connection with the item.

It is possible that the aggregation of certain types of demand curves (not shown), e.g., piecewise demand curves, may result in the formation of an aggregate demand curve wherein a quantity thereof has two or more prices associated therewith. Under this circumstance, it is desirable in a forward auction to utilize the price having the greatest value for said quantity and it is desirable in a reverse auction to utilize the price having the least value for said quantity.

In a forward auction, the quantity associated with point 26 on aggregate demand curve 24 is no more than the total quantity of the item available. In contrast, in a reverse auction, the quantity associated with point 26 on aggregate demand curve 24 is no less than the total quantity of the item available.

In the foregoing example discussed in connection with FIG. 2, the price associated with points 30 and 32 were the same. Thus, the example discussed in connection with FIG. 2 is an example of a non-discriminatory pricing auction, i.e., an auction where each bid is cleared at the same price. However, it may be desirable in optimizing the winning allocation to conduct an auction where discriminatory pricing is permitted.

With reference to FIG. 3, an example of the present invention in connection with discriminatory pricing will now be described. Initially, a plurality of bidders each submit a bid that includes a price-quantity demand curve, e.g., 38 and 40, for an item. Each demand curve 38 and 40 is superimposed in, or referenced to, Cartesian coordinate system 4. A point 42 on demand curve 38 that maximizes an area of a rectangle 44 that is bounded by demand curve 38 and origin 10 is determined. The position of a point 46 on demand curve 40 that maximizes an area of a rectangle 48 that is bounded by demand curve and origin 10 is also determined. The quantities associated with points 42 and 46 on demand curves 38 and 40, respectively, are summed. If this sum is no more than the total quantity of the item available, the price-quantity pairs associated with points 42 and 46 on demand curves 38 and 40, respectively, are included in the winning allocation.

However, if the sum of the quantities associated with points 42 and 46 are greater than the total quantity of the item available, the submitted demand curves are placed into a list and the demand curve with the point having the lowest price associated therewith is identified. In the example shown in FIG. 3, point 42 on demand curve 38 has the lowest price associated therewith.

Next, the position of points 42 and 46 on demand curves 38 and 40, respectively, are adjusted whereupon the price associated with adjusted points 42 and 46 are increased by the price associated with point 42 on demand curve 38. This adjusted position of points 42 and 46 on demand curves 38 and 40 are illustrated by reference numbers 42′ and 46′, respectively. In a similar manner, if other demand curves (not shown) were submitted, points on these other demand curves would be increased by the price associated with point 42 on demand curve 38.

Next, the quantities associated with the adjusted position of points on the demand curves in the list are summed. Thus, in FIG. 3, the quantities associated with the positions of adjusted points 42′ and 46′ are summed.

If the thus-determined sum is no more than the total quantity of the item available, the quantity associated with the adjusted position of each point on each demand curve is included in the winning allocation. To determine the price associated with the adjusted position of each point on one of the demand curves in the list, the following equation 1 (EQ1) is utilized.

$\begin{matrix} {p_{i} = {\left\lbrack {{- b_{i}}/\left( {2a_{i}} \right)} \right\rbrack - \left\lbrack {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q}} \right)/\left( {2{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}}} \right)} \right\rbrack}} & {EQ1} \end{matrix}$

where

-   -   S=list of demand curves;     -   i=the demand curve under consideration;     -   j in S=each demand curve j in S;     -   Q=total number of units of the item available;     -   a_(i) and b_(i)=coefficients of the demand curve under         consideration,         -   i.e., q_(i)=(a_(i))(p_(i))+b_(i); and     -   a_(j) and b_(j)=coefficients of each demand curve other than the         demand curve under consideration, i.e.,         q_(j)=(a_(j))(p_(j))+b_(j).

However, if the sum associated with the position of the adjusted points on the demand curves is still greater than the total the quantity of the item available, the demand curve having the lowest price associated with the original position of the point thereon, e.g., demand curve 38, is removed from the list of demand curves and the demand curve with the point having the next lowest price associated with the original position of the point thereon is identified. The position of the adjusted points on the remaining demand curves are further adjusted whereupon the price associated with each further adjusted point is further increased by said next lowest price. The quantities associated with the further adjusted points on the demand curves still remaining in the list are then summed.

If this sum is greater than the total quantity of the items available, the demand curve in the list having the lowest price associated with the original position of the point thereon is removed from the list of demand curves and the demand curve with the point having the next lowest price associated with the original position of the point thereon is identified. The foregoing steps are then repeated until the sum of the quantities associated with the further adjusted points on the demand curves remaining in the list is no more than the total quantity of the item available. Thereafter, for each demand curve remaining in the list, the quantity associated with the position of the adjusted point on the demand curves and the price determined for each demand curve utilizing equation 1 (EQ1) above are included in the winning allocation.

The example described in connection with FIG. 3 was for a discriminatory price forward auction. The following method can be utilized for determining the winning allocation in a discriminatory price reverse auction.

A plurality of sellers of an item each submit a bid for said item that includes a price-quantity supply curve of the form shown in the following equation 2 (EQ2);

q=ap+b,  EQ2:

where

q=quantity;

p=price;

a=slope of the supply curve; and

b=offset of the quantity of the supply curve from a quantity of zero.

The supply curves are then sorted in increasing order of the ratio b/a for each supply curve and a list S is formed that initially includes only the supply curve having the smallest ratio of b/a.

For each supply curve in list S, a clearing price p_(i) is determined utilizing equation 3 (EQ3) and a clearing quantity q_(i) is determined utilizing equation 4 (EQ4).

$\begin{matrix} {{{Clearing}\mspace{14mu} {quantity}\text{:}\mspace{14mu} q_{i}} = {\left( {{- b_{i}}/2} \right) + {\left( {a_{i}/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}} & {EQ3} \\ {{{Clearing}\mspace{14mu} {price}\text{:}\mspace{14mu} p_{i}} = {\left( {{{- b_{i}}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}} & {EQ4} \end{matrix}$

where

-   -   i=the supply curve under consideration;     -   j in S=each supply curve j in S;     -   Q=total number of units of the item available;     -   a_(i) and b_(i)=coefficients of the supply curve under         consideration,         -   i.e., q_(i)=(a_(i))(p_(i))+b_(i); and     -   a_(j) and b_(j)=coefficients of each supply curve other than the         supply curve under consideration, i.e.,         q_(j)=(a_(i))(p_(i))+b_(j).

From the clearing prices determined thus far, the clearing price having the largest value is identified. If the value of this clearing price is less than the ratio b/a of the next supply curve in the sorted order that is not already in list S, or if list S includes all of the supply curves, the clearing prices and the clearing quantities determined thus far are included in the winning allocation.

However, if the clearing price having the largest value is greater than or equal to the ratio b/a of the next supply curve in the sorted order not already in list S, the next supply curve in the sorted order that is not already in list S is included therein. Equations 3 and 4 are then utilized again to determine for each supply curve in list S a new clearing price p_(i) and a new clearing quantity q_(i).

The clearing price having the largest value is then identified. If the value of the clearing price having the largest value is less than the ratio b/a of the next supply curve in the sorted order that is not already in list S, or if list S includes all of the supply curves, the clearing prices and the clearing quantities determined thus far are included in the winning allocation. If not, however, the process of including in list S the next supply curve in the sorted order that is not already in list S; utilizing equations 3 and 4 to determine new clearing prices and clearing quantities for each supply curve in list S; identifying from the clearing prices determined thus far the clearing price having the largest value; and including in list S the next supply curve in the sorted order that is not already in list S continues until the value of the clearing price having the largest value is less than the ratio b/a of the next supply curve in the sorted order that is not already in list S or until list S includes all of the supply curves.

The foregoing steps can terminate early if the clearing quantity q_(i) of any seller is determined to have a value less than zero.

A method of determining a winning allocation in an exchange will now be described in connection with FIG. 4. In an exchange, at least one buyer submits a price-quantity demand curve 60 and at least one seller submits a price-quantity supply curve 62. Demand curve 60 and supply curve 62 are superimposed in, or referenced to, Cartesian coordinate system 4.

The positions of points 64 and 66 on demand curve 60 and supply curve 62, respectively, that maximize an area of a rectangle 68 that is bounded by demand curve 60, supply curve 62 and the unit price axis, or x-axis 6, are determined. Since the area of rectangle 68 is being determined, points 64 and 66 have the same quantity associated therewith. Moreover, rectangle 68 is desirably positioned beneath the intersection of demand curve 60 and supply curve 62 with the price associated with points 64 on demand curve 60 being greater than the price associated with points 66 on supply curve 62 since this is the only area defined by demand curve 60 and supply curve 62 where the buyer and seller would be willing to complete the transaction. The price-quantity pairs associated with points 64 and 66 are then included in the winning allocation.

With reference to FIG. 5, in a non-discriminatory pricing exchange, each of a plurality of buyers of an item submits a bid for said item that includes a price-quantity demand curve, e.g., demand curves 70 and 72. Similarly, each of a plurality of sellers of the item submit a bid for said item that includes a price-quantity supply curve, e.g., supply curves 74 and 76.

The quantities represented by demand curves 70 and 72 for each unit price are summed to form an aggregate demand curve 78. Similarly, the quantities represented by supply curve 74 and 76 for each unit price are summed to form an aggregate supply curve 80. Aggregate demand curve 78 and aggregate supply curve 80 are superimposed in, or referenced to, Cartesian coordinate system 4. The position of points 82 and 84 on aggregate demand curve 78 and aggregate supply curve 80, respectively, that maximize an area of a rectangle 86 that is bounded by aggregate demand curve 78, aggregate supply curve 80 and the unit price axis, or x-axis 6, are determined. As can be seen, each point 82 and 84 has the same quantity associated therewith and the price associated with the point 82 on aggregate demand curve 78 is greater than the price associated with point 84 on aggregate supply curve 80.

Next, the position of each of points 88 and 90 on demand curves 70 and 72, respectively, where the price associated therewith is the same as the price associated with point 82 on aggregate demand curve 78 is determined. Similarly, the position of each point 92 and 94 on supply curves 74 and 76, respectively, where the price associated therewith is the same as the price associated with point 84 on aggregate supply curve 80 is determined. The price-quantity pairs associated with points 88, 90, 92 and 94 are then included in the winning allocation.

With reference to FIG. 6, a method for determining the winning allocation in a discriminatory pricing exchange will now be described. Initially, a plurality of price-quantity demand curves and a plurality of price-quantity supply curves are received. Since each demand curve and each supply curve is a linear curve, it can be expressed in the generalized form shown in equation 2 (EQ2) above. For each price-quantity demand curve, the point thereon where the product of the price-quantity pair represented by said point is maximized is determined. An aggregate revenue-quantity demand curve 92 is formed as a function of the demand curves and the points determined thereon. An aggregate cost-quantity supply curve 94 is formed as a function of the supply curves. The aggregate demand curve 92 and aggregate supply curve 94 are compared to determine the location of points 96 and 98 thereon where a difference in price therebetween for a specific quantity is maximized. The price-quantity pairs associated with points 96 and 98 are then included in the winning allocation.

The form aggregate demand curve 92 and aggregate supply curve 94, it is necessary initially to determine the maximum quantity Q_(d) the buyers associated with the demand curves are willing to buy and the maximum quantity Q_(s) the sellers associated with the supply curves are willing to sell. For simplicity of illustration, Q_(d) and Q_(s) in FIG. 6 are illustrated as having the same quantity.

To determine the maximum demand quantity Q_(d) the buyers associated with the demand curves are willing to buy, the sums of the quantities associated with the points on the demand curves where the product of the price-quantity pair represented by said points are maximized are determined. Thus, the initial value of the demand quantity Q_(d) is equal to the sums of the quantities associated with the points on the demand curves where the products of the price-quantity pairs represented by the points are maximized. A list S_(d) of demand curves is also formed.

A clearing price p_(i) and a clearing quantity q_(i) are then determined for each curve in list S_(d) utilizing the following equation 5 (EQ5) and equation 6 (EQ6) respectively.

$\begin{matrix} {p_{i} = {\left( {{b_{i}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q_{d}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}} & {EQ5} \\ {q_{i} = {\left( {b_{i}/2} \right) - {\left( {a_{i}/2} \right)\left( {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q_{d}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}} & {EQ6} \end{matrix}$

where

i=the curve under consideration;

j in S_(d)=each curve j in S_(d);

a_(d) and b_(i)=coefficients of the curve under consideration,

-   -   i.e., q_(i)=(a_(i))(p_(i))+b_(i); and

a_(j) and b_(j)=coefficients of each curve in S,

-   -   i.e., q_(j)=(a_(j))(p_(j))+b_(j).

For the curves in list S_(d), the thus determined clearing prices p_(i) are summed and the thus determined clearing quantities q_(i) are summed. A point 100 representing the sum of the thus determined clearing prices and the sum of the thus determined clearing quantities is plotted. As shown in FIG. 6, point 100 represents one of the points that form aggregate demand curve 92.

Next, the value of Q_(d) is decreased and new values of clearing price p_(i) and clearing quantity q_(i) are determined utilizing EQ5 and EQ6 to determine the location of the next point, e.g., point 102, that defines aggregate demand curve 92. This process is then repeated until the value of Q_(d) equals zero (0).

In order to decrease the value of Q_(d), the curve having the smallest ratio of b/a in list S_(d) is selected. The ratio b/a for this selected curve is substituted for the value of p_(i) in equation 5 above. Based on this substituted value of p_(i), EQ5 is solved to determine a new value for Q_(d). The selected curve is then removed from list S_(d).

This new value of Q_(d) is then utilized in EQ5 and EQ6 to determine a clearing price p_(i) and a clearing quantity Q_(i) for each curve remaining list S_(d). The thus determined clearing prices p_(i) are summed and the thus determined clearing quantities Q_(i) are summed and a point (not shown) representing the sum of the thus determined clearing prices and the sum of the thus determined clearing quantities is plotted. This new point represents another point of aggregate demand curve 92.

To form aggregate supply curve 94, a supply quantity value Q_(s) is initially set equal to zero (0) and a supply clearing price value p_(i) is initially set to zero (0). The value of Q_(s) and the value of p_(i) define a point on the aggregate supply curve.

The supply curve having the smallest ratio of b/a is included in a list S. Thereafter, a supply curve not already included in list S_(s) and having the next largest ratio of b/a is included in list S. The ratio b/a of the supply curve just included in list S_(s) is substituted for the value of p_(i). This substituted value of p_(i) is then included in the following equation 7 (EQ7) which is solved for a new value of Q_(s).

$\begin{matrix} {{p_{i} = {\left( {{{- b_{i}}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{2Q_{s}} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}};} & {EQ7} \end{matrix}$

where

i=the selected one supply curve,

j in S_(s)=each curve j in S_(s),

a_(i) and b_(i)=coefficients of the selected one supply curve,

-   -   i.e., q_(i)=(a_(i))(p_(i))+b_(i), and

a_(j) and b_(j)=coefficients of each curve in S_(s),

-   -   i.e., q_(j)=(a_(j))(p_(j))+b_(j).

The new value of Q_(s) and the substituted value of p_(i) define another point on the aggregate supply curve 94.

The steps of including in list S_(s) the supply curve not already included therein having the next largest ratio b/a; substituting this ratio of b/a for the value of p_(i) and solving EQ7 for a new value Q_(s) based on the new value of p_(i) repeats until the supply quantity value Q_(s) equals the initial demand quantity value Q_(d) or until all of the supply curves have been included in list S_(s).

Lastly, it is to appreciated that since the foregoing methods are desirably computer implemented, any or all of the foregoing methods can be embodied on computer readable medium as instructions which, when executed by a processor, cause the processor to perform any or all of the foregoing methods.

The invention has been described with reference to the preferred embodiments. Obvious modifications and alterations will occur to others upon reading and understanding the preceding detailed description. It is intended that the invention be construed as including all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof. 

1. A computer-implemented method of determining a winning allocation in an auction comprising: (a) a processor of the computer receiving from each of a plurality of bidders for an item a bid for said item that includes a price-quantity curve; (b) the processor forming an aggregate curve that includes the sum of the quantities of the price-quantity curves; (c) the processor referencing the aggregate curve to a Cartesian coordinate system that has an origin where axes representing price and quantity meet; (d) the processor determining the position of a point on the aggregate curve that, for a forward auction, maximizes an area of a rectangle that is bounded by the origin and the aggregate curve and, for a reverse auction, minimizes the area of said rectangle; (e) the processor determining the position of a point on each price-quantity curve where the price associated therewith is the same as the price associated with the point on the aggregate curve; and (f) the processor including in the winning allocation in connection with the item, the price-quantity pairs associated with the points on the price-quantity curves.
 2. The method of claim 1, wherein each price-quantity curve is either a linear curve, a piecewise linear curve, a non-linear curve, a piecewise non-linear curve, or one or more price-quantity pairs.
 3. The method of claim 1, wherein, when the price-quantity curves are aggregated to form in the aggregate curve, each instance where a quantity on the aggregate curve has two or more prices associated therewith, the price having the greatest value is associated with said quantity.
 4. The method of claim 1, wherein: in a forward auction, the quantity associated with the point on the aggregate curve is no more than the total quantity of the item available; and in a reverse auction, the quantity associated with the point on the aggregate curve is no less than the total quantity of the item required.
 5. A computer-implemented method of determining a winning allocation in a forward auction comprising: (a) a processor of the computer receiving from each of a plurality of bidders for an item a bid for said item that includes a price-quantity demand curve; (b) the processor referencing each demand curve to a Cartesian coordinate system that has an origin where axes representing price and quantity meet; (c) the processor determining a position of a point on each demand curve that maximizes an area of a rectangle that is bounded by said demand curve and said origin; (d) the processor summing the quantities associated with the points on the demand curves; and (e) if the sum determined in step (d) is no more than the total quantity of the item available, the processor including in the winning allocation the price-quantity pairs associated with the points on the demand curves.
 6. The method of claim 5, wherein each demand curve is either a linear curve, a piecewise linear curve, a non-linear curve, piecewise non-linear curve, or one or more price-quantity pairs.
 7. The method of claim 5, further including: (f) if the sum determined in step (d) is greater than the total quantity of the item available, the processor forming a list S of all the demand curves; (g) the processor identifying the demand curve in list S with the point having the lowest price associated therewith; (h) the processor adjusting the position of the points on the demand curves in list S whereupon the price associated with each adjusted point is increased by said lowest price; (i) the processor summing the quantities associated with the adjusted points on the demand curves in list S; and (j) if the sum determined in step (i) is no more than the total quantity of the item available, the processor including in the winning allocation for each demand curve in list S the quantity associated with the adjusted point on the demand curve and a price p_(i) determined utilizing the equation $p_{i} = {\left\lbrack {{- b_{i}}/\left( {2a_{i}} \right)} \right\rbrack - \left\lbrack {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q}} \right)/\left( {2{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}}} \right)} \right\rbrack}$ where S=list of demand curves; i=the demand curve under consideration; j in S=each demand curve j in S; Q=total number of units of the item available; a_(i) and b_(i)=coefficients of the demand curve under consideration, i.e., q_(i)=(a_(i))(p_(i))+b_(i); and a_(j) and b_(j)=coefficients of each demand curve in S, i.e., q_(j)=(a_(j))(p_(j))+b_(j).
 8. The method of claim 7, further including: (k) if the sum determined in step (i) is greater than the total quantity of the item available, the processor deleting from list S the demand curve with the point having the lowest price associated therewith; and (l) the processor repeating steps (g)-(k) as necessary until the condition in step (j) is satisfied.
 9. A computer-implemented method of determining a winning allocation in a reverse auction comprising: (a) a processor of the computer receiving from each of a plurality of sellers of an item a bid for said item that includes a price-quantity supply curve of the form q=ap+b, where q=quantity, p=price, a=slope of the supply curve, and b=offset of the quantity of the supply curve from a quantity of zero; (b) the processor sorting the supply curves in increasing order of the ratio b/a for each supply curve; (c) the processor determining for each supply curve in a list S of adjacent supply curves in the sorted order a clearing price p_(i) and a clearing quantity q_(i) utilizing the equations: ${{Clearing}\mspace{14mu} {quantity}\text{:}\mspace{14mu} q_{i}} = {\left( {{- b_{i}}/2} \right) + {\left( {a_{i}/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}$ $\mspace{20mu} {{{Clearing}\mspace{14mu} {price}\text{:}\mspace{14mu} p_{i}} = {\left( {{{- b_{i}}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{2Q} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}}$ where i=the supply curve under consideration, j in S=each supply curve j in S, Q=total number of units of the item available, a_(i) and b_(i)=coefficients of the supply curve under consideration, i.e., q_(i)=(a_(i))(p_(i))+b_(i), and a_(j) and b_(j)=coefficients of each supply curve in S, i.e., q_(j)=(a_(j))(p_(j))+b_(j); (d) the processor identifying from the clearing prices determined thus far the clearing price having the largest value; and (e) if the value of the clearing price having the largest value is less than the ratio b/a of the next supply curve in the sorted order that is not already in list S or if list S includes all of the supply curves, the processor including in the winning allocation the clearing prices and the clearing quantities determined thus far.
 10. The method of claim 9, further including: (f) if the clearing price having the largest value is greater than or equal to the ratio b/a of the next supply curve in the sorted order not already in list S, the processor including in list S the next supply curve in the sorted order that is not already in list S; and (g) the processor repeating steps (c)-(f) as necessary until the clearing prices and the clearing quantities determined thus far are included in the winning allocation in step (e).
 11. The method of claim 10, further including the processor terminating the method if the clearing quantity q_(i) of any seller in step (c) is determined to have a value less than zero.
 12. The method of claim 9, wherein list S initially includes only the supply curve having the smallest ratio of b/a.
 13. A computer-implemented method of determining a winning allocation in an exchange comprising: (a) a processor of the computer receiving from a buyer a price-quantity demand curve for an item; (b) the processor receiving from a seller a price-quantity supply curve for the item; (c) the processor referencing the demand and supply curves to a Cartesian coordinate system that has an origin where axes representing price and quantity meet; (d) the processor determining the positions of points on the demand and supply curves that maximize an area of a rectangle that is bounded by the demand and supply curves and the price axis, wherein each said point has the same quantity associated therewith and the price associated with the point on the demand curve is greater than the price associated with the point on the supply curve; and (e) the processor including in the winning allocation the price-quantity pairs associated with the points on the demand and supply curves.
 14. The method of claim 13, wherein each of the demand and supply curves is either a linear curve, a piecewise linear curve, a non-linear curve, a piecewise non-linear curve, or one or more price-quantity pairs.
 15. A computer-implemented method of determining a winning allocation in an exchange comprising: (a) a processor of the computer receiving from each of a plurality of buyers for an item a bid for said item that includes a price-quantity demand curve; (b) the processor receiving from each of a plurality of sellers of the item a bid for said item that includes a price-quantity supply curve; (c) the processor forming an aggregate demand curve that includes the sum of the quantities of the demand curves; (d) the processor forming an aggregate supply curve that includes the sum of the quantities of supply curves; (e) the processor referencing the aggregate demand curve and the aggregate supply curve to a Cartesian coordinate system that has an origin where axes representing price and quantity meet; (f) the processor determining the position of a point on each of the aggregate demand curve and the aggregate supply curve that maximize an area of a rectangle that is bounded by the aggregate demand curve, the aggregate supply curve and the price axis, wherein each said point has the same quantity associated therewith and the price associated with the point on the aggregate demand curve is greater than the price associated with the point on the aggregate supply curve; (g) the processor determining the position of a point on each demand curve where the price associated therewith is the same as the price associated with the point on the aggregate demand curve; (h) the processor determining the position of a point on each supply curve where the price associated therewith is the same as the price associated with the point on the aggregate supply curve; and (i) the processor including in the winning allocation in connection with the item, the price-quantity pairs associated with the points on the demand curves and the points on the supply curves.
 16. The method of claim 15, wherein each demand curve and each supply curve is either a linear curve, a piecewise linear curve, a non-linear curve, a piecewise non-linear curve, or one or more price-quantity pairs.
 17. The method of claim 15, wherein: when demand curves are aggregated to form the aggregate demand curve, each instance where a quantity on the aggregate demand curve has two or more prices associated therewith, the price having the greatest value is associated with said quantity; and when supply curves are aggregated to form the aggregate supply curve, each instance where a quantity on the aggregate supply curve has two or more prices associated therewith, the price having the least value is associated with said quantity.
 18. A computer-implemented method of determining a winning allocation in an exchange comprising: (a) a processor of the computer receiving a plurality of price-quantity demand curves and a plurality of price-quantity supply curves, wherein each demand curve and each supply curve is of the form: q=ap+b, where q=quantity, p=price, a=slope of the supply curve, and b=offset of the quantity of the supply curve from a quantity of zero; (b) the processor determining for each price-quantity demand curve the point thereon where the product of the price-quantity pair represented by said point is maximized; (c) the processor forming an aggregate revenue-quantity demand curve as a function of the demand curves and the points determined thereon in step (b); (d) the processor forming an aggregate cost-quantity supply curve as a function of the supply curves; (e) the processor comparing the aggregate demand curve and the aggregate supply curve to determine the location of points thereon where a difference in price therebetween for a specific quantity is maximized; and (f) the processor including in the winning allocation the price-quantity pairs associated with said points on the aggregate demand curve and the aggregate supply curve.
 19. The method of claim 18, wherein step (c) includes: the processor determining a value Q_(d) equal to the sums of the quantities associated with the points determined in step (b) for the demand curves; and
 20. The method of claim 19, wherein step (c) further includes: (c)(1) the processor forming a list S_(d) of the demand curves. (c)(2) the processor determining for each curve in the list S_(d) a demand clearing price p_(i) utilizing the equation: $p_{i} = {\left( {{b_{i}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q_{d}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}$ (c)(3) the processor determining for each curve in the list S_(d) a demand clearing quantity q_(i) utilizing the equation: $q_{i} = {\left( {b_{i}/2} \right) - {\left( {a_{i}/2} \right)\left( {\left( {{\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}} - {2Q_{d}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}$ where i=the curve under consideration, j in S_(d)=each curve j in S_(d), a_(i) and b_(i)=coefficients of the curve under consideration, i.e., q_(i)=(a_(i))(p_(i))+b_(i), and a_(j) and b_(j)=coefficients of each curve in S_(d), i.e., q_(j)=(a_(j))(p_(j))+b_(j); (c)(4) for the curves in the list S_(d), the processor summing the thus determined demand clearing prices p_(i) and summing the thus determined demand clearing quantities q_(i), wherein the sum of the demand clearing prices and the sum of the demand clearing quantities define a point on the aggregate demand curve; (c)(5) the processor decreasing the value of Q_(d); and (c)(6) the processor repeating steps (c)(2)-(c)(5) until Q_(d) equals zero.
 21. The method of claim 20, wherein step (c)(5) includes: the processor selecting one curve from the list S_(d); the processor substituting the ratio b/a for said selected one curve for the value of p_(i) in the equation of step (c)(1); the processor determining a new value for Q_(d) by solving the equation of step (c)(1) with the substituted value of p_(i); and the processor removing said selected one curve from the list S_(d).
 22. The method of claim 21, wherein said selected one curve has the smallest ratio of b/a in the list S_(d).
 23. The method of claim 18, wherein step (d) includes: the processor setting a supply quantity value Q_(s) equal to zero (0); the processor setting a supply clearing price value p_(i) equal to zero (0), wherein the value of Q_(s) and the value of p_(i) define a point on the aggregate supply curve; and the processor including in a list S_(s) the supply curve having the smallest ratio of b/a.
 24. The method of claim 23, wherein step (d) further includes: (d)(1) the processor including in the list S_(s) the supply curve not already included therein having the next largest ratio b/a; (d)(2) the processor substituting the ratio b/a of the supply curve included in the list S_(s) in step (d)(1) for the value of p_(i); (d)(3) the processor solving the following equation for a new value Q_(s) with the substituted value of p_(i), wherein the new value of Q_(s) and the substituted value of p_(i) define a point on the aggregate supply curve, ${p_{i} = {\left( {{b_{i}/2}a_{i}} \right) + {\left( {1/2} \right)\left( {\left( {{2Q_{s}} + {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}b_{j}}} \right)/\left( {\sum\limits_{j\mspace{14mu} {in}\mspace{14mu} S}a_{j}} \right)} \right)}}};$ where i=the selected one supply curve, j in S_(s)=each curve j in S_(s), a_(i) and b_(i)=coefficients of the selected one supply curve, i.e., q_(i)=(a_(i))(p_(i))+b_(i), and a_(j) and b_(j)=coefficients of each curve in S_(s), i.e., q_(j)=(a_(j))(p_(j))+b_(j); and (d)(4) the processor repeating steps (d)(1)-(d)(3) until Q_(s) equals Q_(d) or until all of the plurality of supply curves are included in the list S_(s). 